在本地端開發時,當使用者上傳了檔案,專案會將檔案儲存在 /storage/app/public 裡面
當使用者上傳的檔案不多時,這個作法是可行的
但是在正式的系統上,使用者上傳的檔案開始多了之後,通常我們會希望檔案放在更安全的地方。
今天我們來聊聊怎麼在 Laravel Cloud 內新增上傳檔案的空間
Laravel Cloud 使用的 Storage 是由 Cloudflare R2 所建立的物件儲存空間。
API 與 AWS S3 相容,使用方式也跟 AWS S3 很像
所以我們要先安裝 S3 的套件
composer require league/flysystem-aws-s3-v3 --with-all-dependencies
安裝好之後,我們就可以到 Laravel Cloud 上面設置物件儲存空間了
首先我們到「Environment」裡面點擊「Add Resource」,選擇「Bucket」
點擊之後,我們會看到「No Buckets yet」的畫面,點擊「Create a bucket」
之後我們就可以建立對應的物件儲存空間了
建立之後,我們可以在畫面設置 disk name,這邊我們設置為「private」
之後就可以在程式內將檔案儲存到「private」裡面了!
return Storage::disk('private')->get('photo.jpg');
如果之後想從外部進入空間看裡面的內容,我們可以看「Bucket credentials」
我們可以用 cyberduck 之類的軟體存取空間,看裡面目前裝了哪些檔案。
今天的部分就到這邊!我們明天見!